home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / p_man / cat3n / t_snd.z / t_snd
Encoding:
Text File  |  2002-10-03  |  12.4 KB  |  199 lines

  1.  
  2.  
  3.  
  4. tttt____ssssnnnndddd((((3333NNNN))))                                                            tttt____ssssnnnndddd((((3333NNNN))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      _tttt______ssss_nnnn_dddd - send data or expedited data over a connection
  10.  
  11. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  12.      _####_iiii_ffff_dddd_eeee_ffff ______XXXX_OOOO_PPPP_EEEE_NNNN______SSSS_OOOO_UUUU_RRRR_CCCC_EEEE
  13.      _####_iiii_nnnn_cccc_llll_uuuu_dddd_eeee _<<<<_xxxx_tttt_iiii_...._hhhh_>>>>
  14.      _####_eeee_llll_ssss_eeee
  15.      _####_iiii_nnnn_cccc_llll_uuuu_dddd_eeee _<<<<_tttt_iiii_uuuu_ssss_eeee_rrrr_...._hhhh_>>>>
  16.      _####_eeee_nnnn_dddd_iiii_ffff
  17.  
  18.      _iiii_nnnn_tttt _tttt______ssss_nnnn_dddd _((((_iiii_nnnn_tttt _ffff_dddd_,,,, _cccc_hhhh_aaaa_rrrr _****_bbbb_uuuu_ffff_,,,, _uuuu_nnnn_ssss_iiii_gggg_nnnn_eeee_dddd _nnnn_bbbb_yyyy_tttt_eeee_ssss_,,,, _iiii_nnnn_tttt _ffff_llll_aaaa_gggg_ssss_))))_;;;;
  19.  
  20. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  21.      This function is used to send either normal or expedited data.  _ffff_dddd
  22.      identifies the local transport endpoint over which data should be sent,
  23.      _bbbb_uuuu_ffff points to the user data, _nnnn_bbbb_yyyy_tttt_eeee_ssss specifies the number of bytes of user
  24.      data to be sent, and _ffff_llll_aaaa_gggg_ssss specifies any optional flags described below.
  25.  
  26.      By default, _tttt______ssss_nnnn_dddd operates in synchronous mode and may wait if flow
  27.      control restrictions prevent the data from being accepted by the local
  28.      transport provider at the time the call is made.  However, if _OOOO______NNNN_DDDD_EEEE_LLLL_AAAA_YYYY or
  29.      _OOOO______NNNN_OOOO_NNNN_BBBB_LLLL_OOOO_CCCC_KKKK is set (via _tttt______oooo_pppp_eeee_nnnn or _ffff_cccc_nnnn_tttt_llll), _tttt______ssss_nnnn_dddd will execute in
  30.      asynchronous mode, and will fail immediately if there are flow control
  31.      restrictions.
  32.  
  33.      Even when there are no flow control restrictions, _tttt______ssss_nnnn_dddd will wait if
  34.      _SSSS_TTTT_RRRR_EEEE_AAAA_MMMM_SSSS internal resources are not available, regardless of the state of
  35.      _OOOO______NNNN_DDDD_EEEE_LLLL_AAAA_YYYY or _OOOO______NNNN_OOOO_NNNN_BBBB_LLLL_OOOO_CCCC_KKKK.
  36.  
  37.      On successful completion, _tttt______ssss_nnnn_dddd returns the number of bytes accepted by
  38.      the transport provider.  Normally this will equal the number of bytes
  39.      specified in _nnnn_bbbb_yyyy_tttt_eeee_ssss.  However, if _OOOO______NNNN_DDDD_EEEE_LLLL_AAAA_YYYY or _OOOO______NNNN_OOOO_NNNN_BBBB_LLLL_OOOO_CCCC_KKKK is set, it is
  40.      possible that only part of the data will be accepted by the transport
  41.      provider.  In this case, _tttt______ssss_nnnn_dddd will set _TTTT______MMMM_OOOO_RRRR_EEEE for the data that was sent
  42.      (see below) and will return a value less than _nnnn_bbbb_yyyy_tttt_eeee_ssss.  If _nnnn_bbbb_yyyy_tttt_eeee_ssss is zero
  43.      and sending of zero bytes is not supported by the underlying transport
  44.      provider, _tttt______ssss_nnnn_dddd() will return -1 with _tttt______eeee_rrrr_rrrr_nnnn_oooo set to _TTTT_BBBB_AAAA_DDDD_DDDD_AAAA_TTTT_AAAA.  A return
  45.      value of zero indicates that the request to send a zero-length data
  46.      message was sent to the provider.
  47.  
  48.      If _TTTT______EEEE_XXXX_PPPP_EEEE_DDDD_IIII_TTTT_EEEE_DDDD is set in _ffff_llll_aaaa_gggg_ssss, the data will be sent as expedited data,
  49.      and will be subject to the interpretations of the transport provider.
  50.  
  51.      If _TTTT______MMMM_OOOO_RRRR_EEEE is set in _ffff_llll_aaaa_gggg_ssss, or is set as described above, an indication is
  52.      sent to the transport provider that the transport service data unit
  53.      (_TTTT_SSSS_DDDD_UUUU) or expedited transport service data unit (_EEEE_TTTT_SSSS_DDDD_UUUU) is being sent
  54.      through multiple _tttt______ssss_nnnn_dddd calls.  Each _tttt______ssss_nnnn_dddd with the _TTTT______MMMM_OOOO_RRRR_EEEE flag set
  55.      indicates that another _tttt______ssss_nnnn_dddd will follow with more data for the current
  56.      _TTTT_SSSS_DDDD_UUUU.  The end of the _TTTT_SSSS_DDDD_UUUU (or _EEEE_TTTT_SSSS_DDDD_UUUU) is identified by a _tttt______ssss_nnnn_dddd call with
  57.      the _TTTT______MMMM_OOOO_RRRR_EEEE flag not set.  Use of _TTTT______MMMM_OOOO_RRRR_EEEE enables a user to break up large
  58.      logical data units without losing the boundaries of those units at the
  59.      other end of the connection.  The flag implies nothing about how the data
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. tttt____ssssnnnndddd((((3333NNNN))))                                                            tttt____ssssnnnndddd((((3333NNNN))))
  71.  
  72.  
  73.  
  74.      is packaged for transfer below the transport interface.  If the transport
  75.      provider does not support the concept of a _TTTT_SSSS_DDDD_UUUU as indicated in the _iiii_nnnn_ffff_oooo
  76.      argument on return from _tttt______oooo_pppp_eeee_nnnn or _tttt______gggg_eeee_tttt_iiii_nnnn_ffff_oooo, the _TTTT______MMMM_OOOO_RRRR_EEEE flag is not
  77.      meaningful and should be ignored.
  78.  
  79.      The size of each _TTTT_SSSS_DDDD_UUUU or _EEEE_TTTT_SSSS_DDDD_UUUU must not exceed the limits of the
  80.      transport provider as returned by _tttt______oooo_pppp_eeee_nnnn or _tttt______gggg_eeee_tttt_iiii_nnnn_ffff_oooo.  If the size is
  81.      exceeded, a _TTTT_SSSS_YYYY_SSSS_EEEE_RRRR_RRRR with system error _EEEE_PPPP_RRRR_OOOO_TTTT_OOOO will occur.  However, the
  82.      _tttt______ssss_nnnn_dddd may not fail because _EEEE_PPPP_RRRR_OOOO_TTTT_OOOO errors may not be reported immediately.
  83.      In this case, a subsequent call that accesses the transport endpoint will
  84.      fail with the associated _TTTT_SSSS_YYYY_SSSS_EEEE_RRRR_RRRR.
  85.  
  86.      If _tttt______ssss_nnnn_dddd is issued from the _TTTT______IIII_DDDD_LLLL_EEEE state, the provider may silently
  87.      discard the data.  If _tttt______ssss_nnnn_dddd is issued from any state other than
  88.      _TTTT______DDDD_AAAA_TTTT_AAAA_XXXX_FFFF_EEEE_RRRR, _TTTT______IIII_NNNN_RRRR_EEEE_LLLL or _TTTT______IIII_DDDD_LLLL_EEEE, the provider will generate a _TTTT_SSSS_YYYY_SSSS_EEEE_RRRR_RRRR with
  89.      system error _EEEE_PPPP_RRRR_OOOO_TTTT_OOOO (which may be reported in the manner described
  90.      above).
  91.  
  92.      This function resides within both the X/Open compliant _llll_iiii_bbbb_xxxx_nnnn_eeee_tttt and the
  93.      SVR4 compliant _llll_iiii_bbbb_nnnn_ssss_llll Network Services libraries.  Network Services
  94.      applications which require X/Open compliance must link-load with _----_llll_xxxx_nnnn_eeee_tttt.
  95.      Network Services applications which require SVR4 compliance must link-
  96.      load with _----_llll_nnnn_ssss_llll.
  97.  
  98.      On failure, _tttt______eeee_rrrr_rrrr_nnnn_oooo may be set to one of the following:
  99.  
  100.      _TTTT_BBBB_AAAA_DDDD_FFFF               The specified file descriptor does not refer to a
  101.                          transport endpoint.
  102.  
  103.      _TTTT_FFFF_LLLL_OOOO_WWWW               _OOOO______NNNN_DDDD_EEEE_LLLL_AAAA_YYYY or _OOOO______NNNN_OOOO_NNNN_BBBB_LLLL_OOOO_CCCC_KKKK was set, but the flow control
  104.                          mechanism prevented the transport provider from
  105.                          accepting data at this time.
  106.  
  107.      _TTTT_NNNN_OOOO_TTTT_SSSS_UUUU_PPPP_PPPP_OOOO_RRRR_TTTT         This function is not supported by the underlying
  108.                          transport provider.
  109.  
  110.      _TTTT_SSSS_YYYY_SSSS_EEEE_RRRR_RRRR             A system error [see _iiii_nnnn_tttt_rrrr_oooo(2)] has been detected
  111.                          during execution of this function.
  112.  
  113.      _TTTT_BBBB_AAAA_DDDD_DDDD_AAAA_TTTT_AAAA            There are multiple conditions which could cause this
  114.                          _tttt______eeee_rrrr_rrrr_nnnn_oooo to be generated.  One condition is:  _nnnn_bbbb_yyyy_tttt_eeee_ssss
  115.                          is zero and sending zero bytes is not supported by
  116.                          the transport provider.  Another condition is: if
  117.                          ______XXXX_OOOO_PPPP_EEEE_NNNN______SSSS_OOOO_UUUU_RRRR_CCCC_EEEE is defined and a single send was
  118.                          attempted specifying a _TTTT_SSSS_DDDD_UUUU greater than that
  119.                          specified by the current values of the _TTTT_SSSS_DDDD_UUUU field in
  120.                          the _iiii_nnnn_ffff_oooo argument.
  121.  
  122.      _TTTT_OOOO_UUUU_TTTT_SSSS_TTTT_AAAA_TTTT_EEEE           If ______XXXX_OOOO_PPPP_EEEE_NNNN______SSSS_OOOO_UUUU_RRRR_CCCC_EEEE is defined and _tttt______ssss_nnnn_dddd() is issued in
  123.                          the wrong sequence on the transport endpoint
  124.                          referenced by _ffff_dddd, the _TTTT_OOOO_UUUU_TTTT_SSSS_TTTT_AAAA_TTTT_EEEE error value is
  125.                          returned within the variable _tttt______eeee_rrrr_rrrr_nnnn_oooo.
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. tttt____ssssnnnndddd((((3333NNNN))))                                                            tttt____ssssnnnndddd((((3333NNNN))))
  137.  
  138.  
  139.  
  140. NNNNOOOOTTTTEEEESSSS
  141.      The _tttt______ssss_nnnn_dddd routine does not look for a disconnect indication (showing that
  142.      the connection was broken) before passing data to the provider.
  143.  
  144. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  145.      _tttt______oooo_pppp_eeee_nnnn(3N), _tttt______rrrr_cccc_vvvv(3N)
  146.  
  147. DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS
  148.      On successful completion, _tttt______ssss_nnnn_dddd returns the number of bytes accepted by
  149.      the transport provider, and it returns -1 on failure and _tttt______eeee_rrrr_rrrr_nnnn_oooo is set
  150.      to indicate the error.
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.